'''
Created on 2017年5月24日
每两分钟刷新代理池  重新爬取代理网站的代理IP
@author: lingxiang
'''

from proxyManager.FreeProxyFactory import run_sch,run
from verify.VerifyIpPool import runVer
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor  
from apscheduler.schedulers.background import BackgroundScheduler

'''
BackgroundScheduler：和BlockingScheduler基本一样，除了main_loop放在了单独线程里，所以调用start后主线程不会阻塞
'''

'''三个定时任务'''
def start():       
    executors = {
        'default': ThreadPoolExecutor(100),
        'processpool': ProcessPoolExecutor(50)
    }
    job_defaults = {
        'coalesce': True,
        'max_instances': 100,
        'misfire_grace_time': 70
    }
    scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults) 
    scheduler.add_job(runVer, 'cron', second="*", hour="*", minute="*/1")           #每隔一分钟执行方法runVer  定时验证代理IP池还没验证的IP
    scheduler.add_job(run_sch, 'cron', second="*", hour="*", minute="*/15")         #每隔15分钟执行方法run_sch    定时爬取某些更新速度快的代理网站的IP
    scheduler.add_job(run, 'cron', second="0", hour="0", minute="0")            #每隔24小时 执行一次方法run_sch
    scheduler.start()     
       
if __name__ == '__main__':
   
    start()
    

        
        